#include "classical-problems.h"

#include <assert.h>
#include <vector>
#include <list>
#include <map>

//enum { kMaxVolExp = 10 };
//
//class Beverages {
//public:
//  void Add(int vol, int n, int h) {
//    assert(vol >= 0 && vol <= kMaxVol);
//    beverages_[vol].insert(std::make_pair(h, n));
//  }
//  // assumes that V <= max volume
//  int MaxSatisfaction(int V) {
//    return MaxSatisfaction1(kMaxVolExp, V);
//  }
//private:
//  // V < 2^(i+1)
//  int MaxSatisfaction1(int i, int V) {
//    if (V <= 0) return 0;
//
//    int vol = V % (1 << i);    
//    
//    // V - vol == 0, or 2^i;
//    // vol < 2^i;
//    return this->MaxSatisfaction2(i, V - vol) +
//           this->MaxSatisfaction1(i - 1, vol);
//  }
//
//  // V == 0, or 2^i
//  int MaxSatisfaction2(int i, int V) {
//    if (V <= 0) return 0;
//    int score = 0;
//    for (int k = 0; k <= i; ++k) {
//      int vol = 1 << k;
//      int n = 
//    }
//    return 1;
//  }
//private:
//  std::multimap<int, int> beverages_[kMaxVolExp + 1];
//};